package com.edu.pojo;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * <p>
 * 流水表
 * </p>
 *
 * @author GongChengShi
 * @since 2021-01-29
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
public class EduTrxorderDetail implements Serializable {

    private static final long serialVersionUID = 1L;

    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;

    /**
     * 用户id
     */
    private Integer userId;

    /**
     * 相关联的课程id/套餐id/会员商品 id（前台快照）
     */
    private Integer courseId;

    /**
     * 交易订单id
     */
    private Integer trxorderId;

    /**
     * 会员观看类型（前台快照）
     */
    private Integer membertype;

    /**
     * 有效期类型（前台快照）
     */
    private Integer losetype;

    /**
     * 订单过期时间段（前台快照）
     */
    private LocalDateTime loseAbsTime;

    /**
     * 订单过期时间点（前台快照）
     */
    private String loseTime;

    /**
     * 商品开始时间
     */
    @TableField("beginTime")
    private LocalDateTime beginTime;

    /**
     * 商品过期时间
     */
    private LocalDateTime authTime;

    /**
     * 下单时间
     */
    private LocalDateTime createTime;

    /**
     * 支付成功时间
     */
    private LocalDateTime payTime;

    /**
     * 原价格（前台快照）
     */
    private BigDecimal sourcePrice;

    /**
     * 优惠价格
     */
    private BigDecimal couponPrice;

    /**
     * 销售价格（前台快照）
     */
    private BigDecimal currentPrice;

    /**
     * 课程名称（前台goods快照）
     */
    private String courseName;

    /**
     * 课程状态（init 未支付，success 成功，refund 退款，closed，losed,cancel 删除,delete(个人删除课程)）
     */
    private String authStatus;

    /**
     * 订单请求号
     */
    private String requestId;

    /**
     * 描述
     */
    private String description;

    /**
     * 乐观锁版本号
     */
    private Integer version;

    /**
     * 最后更新时间
     */
    private LocalDateTime lastUpdateTime;

    /**
     * 过期是否提醒 init 未提醒 already 已提醒
     */
    private String remindStatus;

    private String delStatus;

    /**
     * 流水类型（COURSE课程、MEMBER会员 ACCOUNT充值）
     */
    @TableField("trxorderType")
    private String trxorderType;


}
